package Package.Reflection.Bases;

public class Bases {
    public static final void Bases() throws ClassNotFoundException {
//反射的概述【理解】
//是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象，调用方法的一种机制。
//由于这种动态性，可以极大的增强程序的灵活性，程序不用在编译期就完成确定，在运行期仍然可以扩展
//获取Class类对象的三种方式【应用】
//2.2.1三种方式分类
//类名.class属性
//对象名.getClass()方法
//        Class.forName(全类名)方法
        Class<Student> stu= Student.class;
        System.out.println(stu);
        Class<Student> c2 = Student.class;
        System.out.println(stu == c2);
        System.out.println("--------");
        //调用对象的getClass()方法，返回该对象所属类对应的Class对象
        Student s = new Student("huy");
        Class<? extends Student> c3 = s.getClass();
        System.out.println(stu == c3);
        System.out.println("--------");
        Class<?> c4=Class.forName("Package.Reflection.Bases.Student");
        System.out.println(c3==c4);
    }
}
